#pragma once

namespace viml {

// 前向声明
class Value;
class StringObject;
class ListObject;
class DictObject;
class Function;
class Closure;

// 值类型枚举
enum class ValueType {
    NIL,        // v:null
    NUMBER,     // 整数
    FLOAT,      // 浮点数
    STRING,     // 字符串
    BOOLEAN,    // 布尔值
    LIST,       // 列表
    DICT,       // 字典
    FUNCTION,   // 函数
    CLOSURE,    // 闭包
    BUILTIN,    // 内建函数
    NONE        // v:none (特殊的无值类型)
};

} // namespace viml